package com.sg.dto.biz.calc.res;

import com.sg.dto.biz.calc.common.DeptAchievementDockingDto;
import com.sg.dto.biz.calc.common.TargetContentAchievementDockingDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @desc StatisticsPerformanceAchievementNumComRespDto
 * @使用场景
 */
@Data
public class StatisticsPerformanceAchievementNumComRespDto
        extends BaseDto
        implements Serializable {

    /**
     * 成果统计类型 STATISTICS_BY_ACHIEVEMENT_TYPE:按成果类型统计 STATISTICS_BY_ACHIEVEMENT_GRACE:按成果等级统计
     */
    @ApiModelProperty("目标内容成果统计类型")
    private String achievementStatisticsType;

    /**
     * 目标内容成果统计数
     */
    @ApiModelProperty("目标内容成果统计数")
    private Long targetContentCalcCount;

    /**
     * 目标内容统计-被评对象内容表主键ID
     */
    @ApiModelProperty("目标内容统计-被评对象内容表主键ID")
    private String tarConCouEvaObjEntityId;

    /**
     * 目标内容统计-目标内容标识
     */
    @ApiModelProperty("目标内容统计-目标内容标识")
    private String tarConCouTargetContentCode;

    /**
     * 目标内容统计-目标周期周期ID
     */
    @ApiModelProperty("目标内容统计-目标周期周期ID")
    private String tarConCouCycleId;

    /**
     * 目标内容统计-目标计划开始时间
     */
    @ApiModelProperty("目标内容统计-目标计划开始时间")
    private Date tarConCouCycleStartTime;

    /**
     * 目标内容统计-目标计划结束时间
     */
    @ApiModelProperty("目标内容统计-目标计划结束时间")
    private Date tarConCouCycleEndTime;

    @ApiModelProperty("目标内容成果统计列表")
    private List<TargetContentAchievementDockingDto> targetContentAchievementDockingList = new ArrayList<>();

    /**
     * 所属主体成果统计数
     */
    @ApiModelProperty("所属主体成果统计数")
    private Long deptCalcCount;

    /**
     * 所属主体统计-被评对象内容表主键ID
     */
    @ApiModelProperty("所属主体统计-被评对象内容表主键ID")
    private String deptCouEvaObjEntityId;

    /**
     * 所属主体统计-被评对象目标周期ID
     */
    @ApiModelProperty("所属主体统计-被评对象目标周期ID")
    private String deptCouEvaObjTargetCycleId;

    /**
     * 所属主体统计-关联目标内容ID
     */
    @ApiModelProperty("所属主体统计-关联目标内容ID")
    private String deptCouTargetCycleContentId;

    /**
     * 所属主体统计-目标周期周期ID
     */
    @ApiModelProperty("所属主体统计-目标周期周期ID")
    private Date deptCouCycleId;

    /**
     * 所属主体统计-目标计划开始时间
     */
    @ApiModelProperty("所属主体统计-目标计划开始时间")
    private Date deptCouCycleStartTime;

    /**
     * 所属主体统计-目标计划结束时间
     */
    @ApiModelProperty("所属主体统计-目标计划结束时间")
    private Date deptCouCycleEndTime;

    @ApiModelProperty("所属主体成果统计列表 ")
    private List<DeptAchievementDockingDto> deptAchievementDockingList = new ArrayList<>();

}
